cli tools for warp

📌 大纲

📝 主题描述

关于 warp 的使用教程

🎯 目标

基础安装和配置

我们这里选择使用 zsh 命令行界面。

我们最常用的工具包有哪些?

常用工具包的表格:

插件名 功能描述 Warp取代 管理方式 额外配置 使用频率
bat 替代 cat,支持语法高亮显示 No brew themes
lsd 替代 ls,支持色彩和图标显示 No brew
fd 替代 find,快速且用户友好 No brew
zoxide 替代 cd,快速目录跳转 No brew
ripgrep 替代 grep,搜索工具 No brew
thefuck 自动纠正命令行拼写错误 No brew
starship 极简主题,集成多个功能 No brew
zsh-notify 命令完成后发送通知 No zinit
btop、htop 资源占用情况 No brew
tmux 终端多窗口管理 Yes brew
fzf 命令行模糊搜索工具 Yes brew
fzf-tab 增强 zsh 的标签补全功能 Yes zinit
zsh-autosuggestions 基于历史命令的自动补全建议 Yes zinit, brew
zsh-completions 增强默认补全功能 Yes zinit, brew
fast-syntax-highlighting 显示命令的语法高亮,实时反馈 Yes zinit, brew
zsh-syntax-highlighting 显示命令的语法高亮 Yes zinit, brew
zsh-history-
substring-search
通过输入命令的一部分来
搜索命令历史
Yes zinit, brew
extract 解压缩文件 Yes zinit

工具包的选择和安装:

macos 下使用 warp ,需要安装的包:

brew install fzf bat lsd fd zoxide thefuck btop starship fastfetch


macos 下使用 alacritty ,除了上面的工具包,额外可以安装的包:

# no warp
brew install zsh-autosuggestions zsh-completions zsh-syntax-highlighting zsh-history-substring-search tmux 

使用 warp 的配置文件:

# export TERM="xterm-256color"              # getting proper colors
# if [ -z "$TMUX" ]; then
#     export TERM="xterm-256color"
# else
#     export TERM="tmux-256color"
# fi
if [[ "$TERM" == "tmux-256color" ]]; then
  export TERM=screen-256color
fi

export HISTORY_IGNORE="(ls|cd|pwd|exit|sudo reboot|history|cd -|cd ..)"

### PATH
if [ -d "$HOME/.bin" ] ;
  then PATH="$HOME/.bin:$PATH"
fi

if [ -d "$HOME/.local/bin" ] ;
  then PATH="$HOME/.local/bin:$PATH"
fi

if [ -d "$HOME/Applications" ] ;
  then PATH="$HOME/Applications:$PATH"
fi

### golang ###
export GOPATH="$HOME/go"
export PATH="$GOPATH/bin:$PATH"
export PATH="/usr/local/istio/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
export PATH="/usr/local/opt/node@14/bin:$PATH"
export PATH="$HOME/emacs-configs/doom-emacs/bin:$PATH"
#export KUBECONFIG="${KUBECONFIG}:$HOME/.kube/config"

#export LDFLAGS="-L/usr/local/opt/node@14/lib"
#export CPPFLAGS="-I/usr/local/opt/node@14/include"


### 设置和初始化 Node Version Manager (NVM) 的环境 ###
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
export PATH="/opt/homebrew/opt/node@20/bin:$PATH"

### bat theme ###
export BAT_THEME=tokyonight_night

[[ -f ~/.aliases.zsh ]] && source ~/.aliases.zsh

# thefuck alias
eval $(thefuck --alias fk)

# neofetch
eval "fastfetch"

# Load Starship
eval "$(starship init zsh)"

alias ls="lsd --group-dirs=first"
alias ll="lsd --group-dirs=first -l"

使用 Alacritty 终端模拟器的配置文件

[[ -f ~/.aliases.zsh ]] && source ~/.aliases.zsh

### VMWare easy commands via functions ###
vmup() {
    [ $1 ] && /Applications/VMware\ Fusion.app/Contents/Library/vmrun -T fusion start ~/Virtual\ Machines.localized/$1.vmwarevm/$1.vmx nogui || echo "Please provide VM name"
}
vmdown() {
    [ $1 ] && /Applications/VMware\ Fusion.app/Contents/Library/vmrun -T fusion stop ~/Virtual\ Machines.localized/$1.vmwarevm/$1.vmx soft=True || echo "Please provide VM name"
}
vmlist() {
  vmls=`ls ~/Virtual\ Machines.localized/ | sed 's/\.vmwarevm$//' | tr "/\n" " "`
  echo "All available VMs: ${vmls}"
  vmrn=`/Applications/VMware\ Fusion.app/Contents/Library/vmrun -T fusion list | grep vm | cut -d'/' -f6 | sed 's/\.vmx$//' | tr "/\n" " "`
  echo "All running VMs: ${vmrn}"
}

### not warp ###
# history setup
HISTFILE=$HOME/.zhistory
SAVEHIST=1000
HISTSIZE=999
setopt share_history 
setopt hist_expire_dups_first
setopt hist_ignore_dups
setopt hist_verify

# completion using arrow keys (based on history)
bindkey '^[[A' history-search-backward
bindkey '^[[B' history-search-forward

source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

### end not warp ###

# thefuck alias
eval $(thefuck --alias fk)

# neofetch
eval "fastfetch"

# Load Starship
eval "$(starship init zsh)"

详细说明

fzf:模糊查找

提供交互式搜索界面,用户可以实时过滤和选择。在处理任意列表数据时提供了极高的灵活性和用户自定义能力。
可以在查找的内容中,实时的移动和选择目标。

bat 替代 cat

bat 的主题配置:

mkdir -p "$(bat --config-dir)/themes"
cd "$(bat --config-dir)/themes"

# Download a theme in '.tmTheme' format, for example:
git clone https://github.com/greggb/sublime-snazzy

# or tokyo night
curl -O https://raw.githubusercontent.com/folke/tokyonight.nvim/main/extras/sublime/tokyonight_night.tmTheme

# Update the binary cache
bat cache --build

And then add the following to your ~/.zshrc:

# ----- Bat (better cat) -----

export BAT_THEME=tokyonight_night

lsd 替代 ls

或者 可以使用 eza

fd 代替 find

是一个简单且快速的文件查找工具。

zoxide 代替 cd

z 来直接跳转目录,不需要按部就班的把目录的完整地址写下来。

主题工具:颜值即正义

starship: 适用于zsh的极简主题,集成了许多有用的功能。

fastfetch: 每次启动终端时、将系统资料非常美观的展现出来。

其它可选工具

thefuck: 一个聪明的工具,可以自动纠正你上一条命令中的拼写错误。

alias-tips: 提醒用户使用已定义的别名,以简化命令输入。

tmux: 虽然不是zsh特有的,但tmuxzsh一起使用可以更好地管理多个命令行会话。

zinit 插件管理

使用 Alacritty 作为终端模拟器的比较好的管理插件的工具。

可管理插件:
fzf-tab:模糊查找的 tab 功能扩展。
zsh-autosuggestions: 提供基于你历史命令的自动补全建议。
zsh-completions: 提供额外的补全定义,增强默认补全功能。
fast-syntax-highlightingzsh-syntax-highlighting: 显示命令的语法高亮,可以实时看到哪些部分是正确的。
zsh-notify: 一个插件,可以在一个长时间运行的命令完成后通知你。
historyzsh-history-substring-search: 允许用户通过输入命令的一部分来搜索命令历史。
extract:解压缩

yadm 配置文件管理

warp 的特点

该终端模拟器更像是一款 vscode 的 IDE 集成开发环境。

颜值

可以通过图片来自动生成主题。

技巧

notebook

workflow